home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MPW Related / MPW Interfaces / CIncludes / Events.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  3.7 KB  |  176 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Events.h
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12. #ifndef __EVENTS__
  13. #define __EVENTS__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. #endif
  18.  
  19. #ifndef __QUICKDRAW__
  20. #include <Quickdraw.h>
  21. #endif
  22.  
  23. #ifndef __OSUTILS__
  24. #include <OSUtils.h>
  25. #endif
  26.  
  27.  
  28. enum {
  29.  
  30.  nullEvent = 0,
  31.  mouseDown = 1,
  32.  mouseUp = 2,
  33.  keyDown = 3,
  34.  keyUp = 4,
  35.  autoKey = 5,
  36.  updateEvt = 6,
  37.  diskEvt = 7,
  38.  activateEvt = 8,
  39.  osEvt = 15,
  40.  
  41. /* event mask equates */
  42.  mDownMask = 2,
  43.  mUpMask = 4,
  44.  keyDownMask = 8,
  45.  keyUpMask = 16,
  46.  autoKeyMask = 32,
  47.  updateMask = 64,
  48.  diskMask = 128,
  49.  activMask = 256,
  50.  highLevelEventMask = 1024,
  51.  osMask = -32768
  52. };
  53. enum {
  54.  everyEvent = -1,
  55.  
  56. /* event message equates */
  57.  charCodeMask = 0x000000FF,
  58.  keyCodeMask = 0x0000FF00,
  59.  adbAddrMask = 0x00FF0000,
  60.  osEvtMessageMask = 0xFF000000,
  61.  
  62. /* OS event messages.  Event (sub)code is in the high byte of the message field. */
  63.  mouseMovedMessage = 0xFA,
  64.  suspendResumeMessage = 0x01,
  65.  
  66.  resumeFlag = 1,            /* Bit 0 of message indicates resume vs suspend */
  67.  convertClipboardFlag = 2,    /* Bit 1 in resume message indicates clipboard change */
  68.  
  69. /* modifiers */
  70.  activeFlag = 1,            /* Bit 0 of modifiers for activateEvt and mouseDown events */
  71.  btnState = 128,            /* Bit 7 of low byte is mouse button state */
  72.  cmdKey = 256,                /* Bit 0 */
  73.  shiftKey = 512,            /* Bit 1 */
  74.  alphaLock = 1024,            /* Bit 2 */
  75.  optionKey = 2048,            /* Bit 3 of high byte */
  76.  controlKey = 4096,
  77.  
  78. /* obsolete equates */
  79.  networkEvt = 10,
  80.  driverEvt = 11,
  81.  app1Evt = 12,
  82.  app2Evt = 13
  83. };
  84. enum {
  85.  app3Evt = 14,
  86.  app4Evt = 15,
  87.  networkMask = 1024,
  88.  driverMask = 2048,
  89.  app1Mask = 4096,
  90.  app2Mask = 8192,
  91.  app3Mask = 16384,
  92.  app4Mask = -32768
  93. };
  94.  
  95. struct EventRecord {
  96.  short what;
  97.  long message;
  98.  long when;
  99.  Point where;
  100.  short modifiers;
  101. };
  102.  
  103. typedef struct EventRecord EventRecord;
  104.  
  105.  
  106. typedef long KeyMap[4];
  107.  
  108.  
  109. struct EvQEl {
  110.  QElemPtr qLink;
  111.  short qType;
  112.  short evtQWhat;    /*this part is identical to the EventRecord as...*/
  113.  long evtQMessage;    /*defined in ToolIntf*/
  114.  long evtQWhen;
  115.  Point evtQWhere;
  116.  short evtQModifiers;
  117. };
  118.  
  119. typedef struct EvQEl EvQEl;
  120. typedef EvQEl *EvQElPtr;
  121.  
  122.  
  123.  
  124. #ifdef __cplusplus
  125. extern "C" {
  126. #endif
  127. pascal Boolean GetNextEvent(short eventMask,EventRecord *theEvent)
  128.  = 0xA970; 
  129. pascal Boolean WaitNextEvent(short eventMask,EventRecord *theEvent,unsigned long sleep,
  130.  RgnHandle mouseRgn)
  131.  = 0xA860; 
  132. pascal Boolean EventAvail(short eventMask,EventRecord *theEvent)
  133.  = 0xA971; 
  134. pascal void GetMouse(Point *mouseLoc)
  135.  = 0xA972; 
  136. pascal Boolean Button(void)
  137.  = 0xA974; 
  138. pascal Boolean StillDown(void)
  139.  = 0xA973; 
  140. pascal Boolean WaitMouseUp(void)
  141.  = 0xA977; 
  142. pascal void GetKeys(KeyMap theKeys)
  143.  = 0xA976; 
  144. pascal long KeyTranslate(const void *transData,short keycode,long *state)
  145.  = 0xA9C3; 
  146. pascal long KeyTrans(const void *transData,short keycode,long *state)
  147.  = 0xA9C3; 
  148. pascal unsigned long TickCount(void)
  149.  = 0xA975; 
  150. #define GetDblTime() (* (unsigned long*) 0x02F0)
  151. #define GetCaretTime() (* (unsigned long*) 0x02F4)
  152.  
  153. #pragma parameter __D0 PostEvent(__A0,__D0)
  154. pascal OSErr PostEvent(short eventNum,long eventMsg)
  155.  = 0xA02F; 
  156. #pragma parameter __D0 PPostEvent(__A0,__D0,__A1)
  157. pascal OSErr PPostEvent(short eventCode,long eventMsg,EvQElPtr *qEl)
  158.  = {0xA12F,0x2288}; 
  159. #pragma parameter __D0 OSEventAvail(__D0,__A0)
  160. pascal Boolean OSEventAvail(short mask,EventRecord *theEvent)
  161.  = {0xA030,0x5240}; 
  162. #pragma parameter __D0 GetOSEvent(__D0,__A0)
  163. pascal Boolean GetOSEvent(short mask,EventRecord *theEvent)
  164.  = {0xA031,0x5240}; 
  165. pascal void FlushEvents(short whichMask,short stopMask)
  166.  = {0x201F,0xA032}; 
  167. #pragma parameter SetEventMask(__D0)
  168. pascal void SetEventMask(short theMask)
  169.  = {0x31C0,0x0144}; 
  170. #define GetEvQHdr() ((QHdrPtr) 0x014A)
  171. #ifdef __cplusplus
  172. }
  173. #endif
  174.  
  175. #endif
  176.